home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / EGAVGA.SWG / 0009_FADE.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  2KB  |  86 lines

  1. Program GoodFade;
  2. Uses
  3.   Crt;
  4.  
  5. Const
  6.   I1II111 = 75;
  7.   IIIIII = 60;
  8.  
  9. Var
  10.   Count, Count2 : Byte;
  11.   Pal1, Pal2 : Array [0..255, 0..2] of Byte;
  12.  
  13. Procedure I1I1;
  14. begin
  15.   For Count := 0 to 255 DO
  16.   begin
  17.     PORT [$03C7] := Count;
  18.     Pal1 [Count, 0] := PORT [$03C9];
  19.     Pal1 [Count, 1] := PORT [$03C9];
  20.     Pal1 [Count, 2] := PORT [$03C9];
  21.    end;
  22.   Pal2 := Pal1;
  23. end;
  24.  
  25. Procedure IIIIIII;
  26. begin
  27.   For Count := 0 to 255 DO
  28.   begin
  29.     PORT [$03C8] := Count;
  30.     PORT [$03C9] := Pal1 [Count, 0];
  31.     PORT [$03C9] := Pal1 [Count, 1];
  32.     PORT [$03C9] :=
  33.     Pal1 [Count, 2];
  34.   end;
  35. end;
  36.  
  37. Procedure FadeOut;
  38. begin
  39.   For Count := 1 to I1II111 DO
  40.   begin
  41.     For Count2 := 0 to 255 DO
  42.     begin
  43.       if Pal2 [Count2, 0] > 0 then
  44.         DEC (Pal2 [Count2, 0]);
  45.       if Pal2 [Count2, 1] > 0 then
  46.         DEC (Pal2 [Count2, 1]);
  47.       if Pal2 [Count2, 2] > 0 then
  48.         DEC (Pal2 [Count2, 2]);
  49.       PORT [$03C8] := Count2;
  50.       PORT [$03C9] := Pal2 [Count2, 0];
  51.       PORT [$03C9] := Pal2 [Count2, 1];
  52.       PORT [$03C9] := Pal2 [Count2, 2];
  53.     end;
  54.     Delay (IIIIII);
  55.   end;
  56. end;
  57.  
  58. Procedure FadeIn;
  59. begin
  60.   For Count := 1 to I1II111 DO
  61.   begin
  62.     For Count2 := 0 to 255 DO
  63.     begin
  64.       if Pal2 [Count2, 0] < Pal1 [Count2, 0] then
  65.         INC (Pal2 [Count2, 0]);
  66.       if Pal2 [Count2, 1] < Pal1 [Count2, 1] then
  67.         INC (Pal2 [Count2, 1]);
  68.       if Pal2 [Count2, 2] < Pal1 [Count2, 2] then
  69.         INC (Pal2 [Count2, 2]);
  70.       PORT [$03C8] := Count2;
  71.       PORT [$03C9] := Pal2 [Count2, 0];
  72.       PORT [$03C9] := Pal2 [Count2, 1];
  73.       PORT [$03C9] := Pal2 [Count2, 2];
  74.     end;
  75.     Delay (IIIIII);
  76.   end;
  77. end;
  78.  
  79. begin
  80.   I1I1;
  81.   FadeOut;
  82.   FadeIn;
  83.   IIIIIII;
  84. end.
  85.  
  86.